/**
 */
package de.thwildau.tm.moses.thrift.thrift;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Map Type</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link de.thwildau.tm.moses.thrift.thrift.MapType#getMapType1 <em>Map Type1</em>}</li>
 *   <li>{@link de.thwildau.tm.moses.thrift.thrift.MapType#getMapType1Annotation <em>Map Type1 Annotation</em>}</li>
 *   <li>{@link de.thwildau.tm.moses.thrift.thrift.MapType#getMapType2 <em>Map Type2</em>}</li>
 *   <li>{@link de.thwildau.tm.moses.thrift.thrift.MapType#getMapType2Annotation <em>Map Type2 Annotation</em>}</li>
 * </ul>
 * </p>
 *
 * @see de.thwildau.tm.moses.thrift.thrift.ThriftPackage#getMapType()
 * @model
 * @generated
 */
public interface MapType extends ContainerType
{
  /**
   * Returns the value of the '<em><b>Map Type1</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Map Type1</em>' containment reference isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Map Type1</em>' containment reference.
   * @see #setMapType1(FieldType)
   * @see de.thwildau.tm.moses.thrift.thrift.ThriftPackage#getMapType_MapType1()
   * @model containment="true"
   * @generated
   */
  FieldType getMapType1();

  /**
   * Sets the value of the '{@link de.thwildau.tm.moses.thrift.thrift.MapType#getMapType1 <em>Map Type1</em>}' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Map Type1</em>' containment reference.
   * @see #getMapType1()
   * @generated
   */
  void setMapType1(FieldType value);

  /**
   * Returns the value of the '<em><b>Map Type1 Annotation</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Map Type1 Annotation</em>' containment reference isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Map Type1 Annotation</em>' containment reference.
   * @see #setMapType1Annotation(Annotation)
   * @see de.thwildau.tm.moses.thrift.thrift.ThriftPackage#getMapType_MapType1Annotation()
   * @model containment="true"
   * @generated
   */
  Annotation getMapType1Annotation();

  /**
   * Sets the value of the '{@link de.thwildau.tm.moses.thrift.thrift.MapType#getMapType1Annotation <em>Map Type1 Annotation</em>}' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Map Type1 Annotation</em>' containment reference.
   * @see #getMapType1Annotation()
   * @generated
   */
  void setMapType1Annotation(Annotation value);

  /**
   * Returns the value of the '<em><b>Map Type2</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Map Type2</em>' containment reference isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Map Type2</em>' containment reference.
   * @see #setMapType2(FieldType)
   * @see de.thwildau.tm.moses.thrift.thrift.ThriftPackage#getMapType_MapType2()
   * @model containment="true"
   * @generated
   */
  FieldType getMapType2();

  /**
   * Sets the value of the '{@link de.thwildau.tm.moses.thrift.thrift.MapType#getMapType2 <em>Map Type2</em>}' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Map Type2</em>' containment reference.
   * @see #getMapType2()
   * @generated
   */
  void setMapType2(FieldType value);

  /**
   * Returns the value of the '<em><b>Map Type2 Annotation</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Map Type2 Annotation</em>' containment reference isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Map Type2 Annotation</em>' containment reference.
   * @see #setMapType2Annotation(Annotation)
   * @see de.thwildau.tm.moses.thrift.thrift.ThriftPackage#getMapType_MapType2Annotation()
   * @model containment="true"
   * @generated
   */
  Annotation getMapType2Annotation();

  /**
   * Sets the value of the '{@link de.thwildau.tm.moses.thrift.thrift.MapType#getMapType2Annotation <em>Map Type2 Annotation</em>}' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Map Type2 Annotation</em>' containment reference.
   * @see #getMapType2Annotation()
   * @generated
   */
  void setMapType2Annotation(Annotation value);

} // MapType
